package swardToOffer.struct_2_string;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @Author ChanZany
 * @Date 2021/5/25 16:06
 * @Version 1.0
 面试题50（一）：字符串中第一个只出现一次的字符
 题目：在字符串中找出第一个只出现一次的字符。如输入"abaccdeff"，则输出
 'b'。
 方法1:HashMap

 */
public class FirstNotRepeatingChar {
    public char firstUniqChar(String s) {
        if(s.length()==1) return s.charAt(0);
        Map<Character,Integer> map = new LinkedHashMap<>();
        char[] chs = s.toCharArray();
        for (int i=0;i<chs.length;i++){
            int count = map.getOrDefault(chs[i],0)+1;
            map.put(chs[i],count);
        }
        for(char k:map.keySet()){
            if(map.get(k)==1) return k;
        }
        return ' ';
    }

    public static void main(String[] args) {
        FirstNotRepeatingChar Main = new FirstNotRepeatingChar();
        System.out.println(Main.firstUniqChar("leetcode"));
    }
}
